package secondStage.part3.Collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 * @ClassName: [ColllectionsDemo1]
 * @Description: ArrayList存储学生对象并遍历
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-04]
 * @Version: [v1.0]
 */
/*
需求:
    ArrayList存储学生对象，使用collections对Arraylist进行排序要求:按照年龄从小到大排序，年龄相同时，按照姓名的字母顺序排序
思路:
    1:定义学生类
    2:创建ArrayList集合对象3:创建学生对象
    4:把学生添加到集合
    5:使用collections对ArrayList集合排序
    6:遍历集合*/
public class ColllectionsDemo1 {
    public static void main(String[] args) {
        //创建ArrayList集合对象
        ArrayList<Student> array = new ArrayList<>();
        //创建学生对象
        Student s1 = new Student("c陈法蓉",22);
        Student s2 = new Student("d张敏",24);
        Student s3 = new Student("g李嘉欣",16);
        Student s4 = new Student("a李冰冰",22);
        //将学生添加到集合
        array.add(s1);
        array.add(s2);
        array.add(s3);
        array.add(s4);
        //使用collections对ArrayList集合排序
        Collections.sort(array, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //按照年龄从小到大排序，年龄相同时，按照姓名字母顺序排序
                int num = o1.getAge()-o2.getAge();
                int num1 = num==0?o1.getName().compareTo(o2.getName()):num;
                return num1;
            }
        });
        //遍历集合
        for (Student s: array) {
            System.out.println(s.getName()+","+s.getAge());
        }
    }
}
